package cn.coisini.model.common.log.service;

import cn.coisini.model.common.dtos.Result;
import cn.coisini.model.common.enums.ResultEnum;
import cn.coisini.model.pojo.AsyncLoginLog;
import cn.coisini.model.vo.AsyncLoginLogQueryVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * @author xiangshaw
 * Description: 异步调用日志服务
 */
public interface AsyncLoginLogService {
    /**
     * 记录登录信息
     */
    void recordLoginLog(AsyncLoginLog asyncLoginLog);

    // 条件分页查询登录日志
    Result<Page<AsyncLoginLog>> pagingQuery(AsyncLoginLogQueryVo asyncLoginLogQueryVo);

    // 根据id查询登录日志
    Result<AsyncLoginLog> get(String id);

    // 根据id删除登录日志
    Result<ResultEnum> removeLoginLogById(String id);
    // 批量删除登录日志
    Result<ResultEnum> batchRemove(List<String> ids);

    // 根据用户id获取最近的登录日志列表，并返回ip属地
    AsyncLoginLog getLastLoginLogByUserId(String userId);
}